#include "System.h"
#include "BspM_Driver.h"
#include "BspLed.h"
#include "MotorsTask.h"

#define CAN_TASK_STACK_SIZE  			(2048)  // CAN 任务堆栈宏
#define CAN_TASK_STACK_PRIORITY  	(3)  // CAN 任务优先级
extern TypeDefTMC4361_RegStruct TMC4361_MRegStruct;
#define BSP_M_NFREEZE(X) X ? (GPIOB->BSRR = GPIO_Pin_1) : (GPIOB->BRR = GPIO_Pin_1)
/******************************************************************************
* @brief  SystemTask  系统任务
* @param  void *pvParameters  任务参数
* @retval None
*******************************************************************************/
void SystemTask(void *pvParameters)
{
	while(1)
	{
//		BspLed_RUN_Reverse();
		vTaskDelay(10000);
//		motor_current(&TMC4361_MRegStruct,0);
//		BSP_M_NFREEZE(0);
//		M_HardWareSendDat(0x4F,0x52535400);
	}
}

//void LEDTask(void *pvParameters)
//{
//	while(1)
//	{
//		BspLed_RUN_Off();
//		vTaskDelay(50);
//	}
//}


//void AppTask(void *pvParameters)
//{
//  BaseType_t Status;
//	
//	
///******************************* 创建 LED 任务 *******************************/
////	Status = xTaskCreate(SystemTask,"SystemTask",256,NULL,1,NULL);
////	if(Status != pdPASS)
////		 while(1);
////	
////	if(Status != pdPASS)
////		 while(1);
//	
//Status = xTaskCreate(MotorsTask,"MotorsTask",1024,NULL,3,NULL);
//	if(Status != pdPASS)
//		 while(1);
//	
//	if(Status != pdPASS)
//		 while(1);
//	

//Status = xTaskCreate(CanTask,\
//	                      "CanTask",\
//	                      2048,\
//	                      NULL,\
//	                      2,\
//	                      NULL);
//	if(Status != pdPASS)
//		 while(1);
//	
//	if(Status != pdPASS)
//		 while(1);
//	
//	vTaskDelete(NULL);  // 删除任务
//	
//}




/******************************************************************************
* @brief  SysInit  系统初始化
* @param  None
* @retval uint8_t  1 失败    0 成功
*******************************************************************************/
uint8_t SysInit(void)
{
	BspLed_Init();
	BspLed_RUN_On();
//	BaseType_t TaskStatus = xTaskCreate(SystemTask,"SystemTask",1024,NULL,1,NULL);
//	if(TaskStatus != pdTRUE)
//	{
//		return 1;
//	}
//	TaskStatus = xTaskCreate(MotorsTask,"MotorsTask",2048,NULL,2,NULL);
//	if(TaskStatus != pdTRUE)
//	{
//		return 1;
//	}
//	return 0;
//	BaseType_t xReturn;
//	xReturn = xTaskCreate(AppTask,\
//	                      "AppTask",\
//	                      256,\
//	                      NULL,\
//	                      1,\
//	                      NULL);
//	if(xReturn != pdPASS)
//		return 1;
	return 0;
}


